---
title: one dev
---

Developing an app with One is as simple as `one dev`.

It takes the following arguments:

```bash
--clean    # boolean, will clear all caches before running
--host     # string, set the hostname to bind to
--port     # string, set the port to bind to
-- debug   # turns on vite debugging
```

The One development server serves both web and native apps on the same port at the same time, and should hot reload both at once. When you see the `Server running on` message with a host and port, that is the same for both native and web.

### Under the hood

The development command does a few things:

- Runs an underlying Vite development server
- Sets up a parent server using [vxrn](https://vxrn.dev) for native

The vxrn library is developed by the One team, and is what enables One to build and serve
React Native apps with Vite. The way it works today is that it runs a server above Vite, which
adds endpoints to support the various endpoints that React Native expects in development.

We think we can eventually migrate this to be a single Vite server, but it was simpler for us to implement it this way - React Native expects to communicate over multiple websockets, and getting that set up properly was simpler with the two-server approach.
